#!/bin/bash

# Modbus数据采集系统测试脚本

echo "=== Modbus数据采集系统测试 ==="

# 检查文件结构
echo "1. 检查项目文件结构..."
if [ -f "Cargo.toml" ]; then
    echo "✓ Cargo.toml 存在"
else
    echo "✗ Cargo.toml 不存在"
    exit 1
fi

if [ -f "src/main.rs" ]; then
    echo "✓ main.rs 存在"
else
    echo "✗ main.rs 不存在"
    exit 1
fi

# 检查核心模块
modules=("config.rs" "error.rs" "modbus/mod.rs" "collector/mod.rs" "storage/mod.rs" "api/mod.rs" "write_handler.rs")
for module in "${modules[@]}"; do
    if [ -f "src/$module" ]; then
        echo "✓ $module 存在"
    else
        echo "✗ $module 不存在"
    fi
done

# 检查配置文件示例
echo -e "\n2. 检查配置文件示例..."
config_files=("CONFIG.md" "config_device.csv" "config_point.csv" "config_write.csv")
for file in "${config_files[@]}"; do
    if [ -f "$file" ]; then
        echo "✓ $file 存在"
    else
        echo "✗ $file 不存在"
    fi
done

# 检查静态文件
echo -e "\n3. 检查Web界面..."
if [ -f "static/index.html" ]; then
    echo "✓ Web监控界面存在"
else
    echo "✗ Web监控界面不存在"
fi

# 检查文档
echo -e "\n4. 检查文档..."
if [ -f "README.md" ]; then
    echo "✓ README.md 存在"
else
    echo "✗ README.md 不存在"
fi

# 尝试编译检查（如果Rust环境可用）
echo -e "\n5. 尝试编译检查..."
if command -v cargo &> /dev/null; then
    echo "Rust环境检测到，执行编译检查..."
    if cargo check --quiet; then
        echo "✓ 代码编译检查通过"
    else
        echo "✗ 代码编译检查失败"
        echo "请检查依赖项和语法错误"
    fi
else
    echo "⚠ Rust环境未检测到，跳过编译检查"
    echo "请安装Rust: https://rustup.rs/"
fi

echo -e "\n=== 测试完成 ==="
echo -e "\n项目结构验证完成！"
echo "下一步："
echo "1. 安装Rust开发环境"
echo "2. 创建Excel配置文件（参考CONFIG.md）"
echo "3. 运行系统: cargo run"
echo "4. 访问Web界面: http://localhost:8080"